package com.bw.service.goods;
import com.bw.entity.PageResult;
import com.bw.pojo.goods.Goods;
import com.bw.pojo.goods.Spu;

import java.util.*;

/**
 * spu业务逻辑层
 */
public interface SpuService {


    public List<Spu> findAll();


    public PageResult<Spu> findPage(int page, int size);


    public List<Spu> findList(Map<String,Object> searchMap);


    public PageResult<Spu> findPage(Map<String,Object> searchMap,int page, int size);

    public PageResult<Spu> findSpuPage(int page,int size);

    public PageResult<Spu> findDelPage(int page,int size);


    public Spu findById(String id);

    public void add(Spu spu);


    public void update(Spu spu);


    public void delete(String id);

    /**
    * 保存商品
    * @param goods 商品综合实体类
    */
    public void saveGoods(Goods goods);

    /**
    * 根据ID查询商品
    *
    */
    public Goods findGoodsById(String id);


    /**
     * 审核与日志
     * @param id
     * @param status
     * @param message
     */
    public void audit(String id,String status,String message);


    /**
     * 下架商品
     * @param id
     */
    public void pull(String id);

    /**
     * 上架商品
     * @param id
     */
    public void put(String id);

    /**
     * 批量上架商品
     * @param ids
     * @return
     */
    public int putMany(String[] ids);

    /**
     * 批量下架商品
     * @param ids
     * @return
     */
    public int pullMany(String[] ids);

    /**
     * 删除单个商品
     * @param id
     * @return
     */
    public void dele(String id);

    /**
     * 批量下架商品
     * @param ids
     * @return
     */
    public int deleMany(String[] ids);

    /**
     * 删除单个商品
     * @param id
     * @return
     */
    public void restore(String id);

    /**
     * 批量下架商品
     * @param ids
     * @return
     */
    public int restoreMany(String[] ids);

}
